package Modelo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import java.util.*;

public class GestorEventos extends Observable {
        private static GestorEventos gE = null;
        Map<String, ArrayList> mapaObservers1 = new HashMap<String, ArrayList>();

	protected GestorEventos() {
		
	}

        public static GestorEventos getInstance() {
        if (gE == null) gE = new GestorEventos();
            return gE;
    }
	

	/**
	 * 
	 * @param observer
	 * @param tipoEvento
	 */
	public void suscribir(Observer observer, String tipoEvento) {
        ArrayList observers;
        observers = mapaObservers1.get(tipoEvento);
        if (observers == null) {
            observers = new ArrayList();
            mapaObservers1.put(tipoEvento, observers);
        }
        observers.add(observer);
    }

	/**
	 * 
	 * @param tipoEvento
	 * @param info
	 */
	  public void publicar(String tipoEvento, String info) {
        ArrayList<Observer> observers;

        observers = mapaObservers1.get(tipoEvento);
        if (observers != null) {
            for (Observer observer : observers) {
                observer.update(this, info);
            }
        }
    }



}